﻿using Npgsql;
using Ortodoctor.Componentes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Ortodoctor.modelo
{
    public class modeloCaixaValor : conexao
    {
        public modeloCaixaValor()
        {
            conn = new NpgsqlConnection(connectionstring);
            conn.Open();
        }

        public int insert(double valor, int id_caixas)
        {
            int id = 0;
            try
            {
                //con.open();
                String sql = @"INSERT INTO caixa_valor(id_caixas, valor, id_usuario) VALUES (:p1, :p2, :p3) 
                returning id_caixa_valor";
                NpgsqlCommand com = new NpgsqlCommand(sql, conn);
                com.Parameters.AddWithValue("p1", id_caixas);
                com.Parameters.AddWithValue("p2", valor);
                com.Parameters.AddWithValue("p3", Convert.ToInt32((HttpContext.Current.Session["ID_USUARIO_ACESSO"]).ToString()));
                id = (int.Parse(com.ExecuteScalar().ToString()));
            }
            finally
            {
                conn.Close();
            }
            return id;
        }

        public int insert(double valor, int id_caixas, int id_parcela)
        {
            int id = 0;
            string numero_parcela = "Parcela de numero " + id_parcela;
            try
            {
                //con.open();
                String sql = @"INSERT INTO caixa_valor(id_caixas, valor, id_usuario, observacoes) VALUES (:p1, :p2, :p3, :p4) returning id_caixa_valor";
                NpgsqlCommand com = new NpgsqlCommand(sql, conn);
                com.Parameters.AddWithValue("p1", id_caixas);
                com.Parameters.AddWithValue("p2", valor);
                com.Parameters.AddWithValue("p3", Convert.ToInt32((HttpContext.Current.Session["ID_USUARIO_ACESSO"]).ToString()));
                com.Parameters.AddWithValue("p4", numero_parcela);
                id = (int.Parse(com.ExecuteScalar().ToString()));
            }
            finally
            {
                conn.Close();
            }
            return id;
        }

        public void deleteIdParcela(int id_parcela)
        {
            string numero_parcela = "Parcela de numero " + id_parcela;
            try
            {
                String sql = "Delete from caixa_valor where observacoes = :p1";
                NpgsqlCommand com = new NpgsqlCommand(sql, conn);
                com.Parameters.AddWithValue("p1", numero_parcela);
                com.ExecuteNonQuery();

                sql = "update caixa_valor_hist set id_usuario_modificacao = :id, data_modificacao = :data where observacoes = :p1";
                com = new NpgsqlCommand(sql, conn);

                com.Parameters.AddWithValue("id", HttpContext.Current.Session["ID_USUARIO_ACESSO"].ToString());
                com.Parameters.AddWithValue("data", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                com.Parameters.AddWithValue("p1", numero_parcela);
                com.ExecuteNonQuery();
            }
            finally
            {
                conn.Close();
            }
        }

        public int getId()
        {
            int id = 0;

            String sql = @"select id_caixas from caixas where nome='Parcelas Pagas' and atualizacao = 'Automatica' 
            and id_clinica=:p1";
            NpgsqlCommand com = new NpgsqlCommand(sql, conn);
            com.Parameters.AddWithValue("p1", HttpContext.Current.Session["ID_CLINICA"]);
            id = (int.Parse(com.ExecuteScalar().ToString()));
            return id;
        }
    }


}